package br.uvv.Service;

import java.io.Serializable;
import java.util.List;

import org.primefaces.model.SortOrder;

import br.uvv.Dao.ProjetoDAO;
import br.uvv.Model.Projeto;
import br.uvv.Util.DAOException;
import br.uvv.Util.RNException;

public class ProjetoService implements Serializable {

	private static final long serialVersionUID = 2310091665586839549L;
	
	private ProjetoDAO projetoDao = new ProjetoDAO();

	public List<Projeto> listarProjeto() throws RNException {
		try {
			return projetoDao.listar();
		} catch (DAOException e){
			throw new RNException(e);
		}
	}

	public Projeto selecionarProjeto(Long id) throws RNException {
		try {
			return projetoDao.selecionar(id);
		} catch (DAOException e){
			throw new RNException(e);
		}
	}

	public void removerProjeto(Projeto projetoInstance) throws RNException {
		try {
			projetoDao.remover(projetoInstance);
		} catch (DAOException e){
			throw new RNException(e);
		}
	}

	public void atualizarProjeto(Projeto projetoInstance) throws RNException {
		try {
			projetoDao.salvar(projetoInstance);
		} catch (DAOException e){
			throw new RNException(e);
		}
	}

	public void salvarProjeto(Projeto projetoInstance) throws RNException {
		try {
			projetoDao.salvar(projetoInstance);
		} catch (DAOException e){
			throw new RNException(e);
		}
	}

	public List<Projeto> listarProjeto(int first, int pageSize,
			String sortField, SortOrder sortOrder, String varBuscaCodigo,
			String varBuscaProjeto, String varBuscaCliente) throws RNException {
		try {
			return projetoDao.listar(first, pageSize, sortField, sortOrder, varBuscaCodigo, varBuscaProjeto, varBuscaCliente);
		} catch (DAOException e) {
			throw new RNException(e);
		}
	}

	public Integer countProjeto(String varBuscaCodigo, String varBuscaProjeto,
			String varBuscaCliente) throws RNException {
		try {
			return projetoDao.count(varBuscaCodigo, varBuscaProjeto, varBuscaCliente);
		} catch (DAOException e) {
			throw new RNException(e);
		}
	}	
}